Non-volatile data storage devices, such as embedded memory devices and removable memory devices, have enabled increased portability of data and software applications. For example, multi-level cell (MLC) storage elements of a flash memory device may each store multiple bits of data, enhancing data storage density as compared to single-level cell (SLC) flash memory devices. As a result, flash memory devices may enable users to store and access a large amount of data.
Storing multiple bits of data in a single flash memory cell typically includes mapping sequences of bits to states of the flash memory cell. For example, a first sequence of bits “11” may correspond to a first state of a flash memory cell, and a second sequence of bits “00” may correspond to a second state of the flash memory cell. After determining that a sequence of bits is to be stored into a particular flash memory cell, the particular flash memory cell may be programmed to a state (e.g., by storing a threshold voltage at the particular flash memory cell) that corresponds to the sequence of bits.
Once memory cells in a data storage device have been programmed, data may be read from the memory cells by sensing the programmed state of each memory cell (e.g., by comparing the cell threshold voltage to one or more read voltages). However, the sensed programming states can sometimes vary from the written programmed states due to one or more factors. For example, factors such as data retention and program disturb conditions tend to shift a threshold voltage of a memory cell from an originally programmed state of the memory cell toward a higher-voltage state of the memory cell or toward a lower-voltage state of the memory cell. Such factors may cause the memory cell to be read as being in a state adjacent to the originally programmed state, corresponding to a “single-state error.” Multistate errors that cause a memory cell to be in a state that is multiple states from the “correct” state of the memory cell may occur less frequently than single-state errors and may be more difficult to detect and correct than single-state errors. Multistate errors and other types of errors may complicate decoding of data, consuming resources at a data storage device. In some cases, a number of errors may exceed an error correction capability of a decoder of the data storage device, resulting in data loss.